home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 7.8 KB | 240 lines | [TEXT/MPS ] |
- /*
- File: AEDataModel.idl
-
- Contains: AppleEvent Data Model Interfaces.
-
- Version: Technology: Copland
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __AEDATAMODEL_IDL__
- #define __AEDATAMODEL_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __MEMORY_IDL__
- #include <Memory.idl>
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #if !FOR_PTR_BASED_AE
- #ifndef __MIXEDMODE_IDL__
- #include <MixedMode.idl>
- #endif
- #endif
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #ifndef __MEMALLOCATORS_IDL__
- #include <MemAllocators.idl>
- #endif
- #endif
-
- #ifdef __SOMIDL__
-
- /* Keywords for Apple event attributes */
- /* Constants used for specifying the factoring of AEDescLists. */
- /* Constants used creating an AppleEvent */
- /* Apple event manager data types */
- typedef ResType DescType;
-
- typedef FourCharCode AEKeyword;
-
- #if FOR_PTR_BASED_AE
- typedef OpaquePtr AEDescData;
-
- typedef SOMLargeStruct AEDesc; /* Derived from a struct of 8 bytes in size */
-
- /*typedef AEDesc * AEDescPtr;*/
- #else
- typedef SOMLargeStruct AEDesc; /* Derived from a struct of 8 bytes in size */
-
- typedef OpaquePtr AEDescPtr; /* Substituted OpaquePtr for “AEDesc*” */
-
- #endif
- typedef SOMLargeStruct AEKeyDesc; /* Derived from a struct of 12 bytes in size */
-
- /* a list of AEDesc's is a special kind of AEDesc */
- typedef AEDesc AEDescList;
-
- /* AERecord is a list of keyworded AEDesc's */
- typedef AEDescList AERecord;
-
- /* an AEDesc which contains address data */
- typedef AEDesc AEAddressDesc;
-
- /* an AERecord that contains an AppleEvent, and related data types */
- typedef AERecord AppleEvent;
-
- typedef OpaquePtr AppleEventPtr; /* Substituted OpaquePtr for “AppleEvent*” */
-
- typedef SInt16 AEReturnID;
-
- typedef SInt32 AETransactionID;
-
- typedef FourCharCode AEEventClass;
-
- typedef FourCharCode AEEventID;
-
- typedef SInt8 AEArrayType;
-
- #if FOR_PTR_BASED_AE
- typedef SOMLargeStruct AEArrayData; /* Derived from a struct of 23 bytes in size */
-
- #else
- typedef SOMLargeStruct AEArrayData; /* Derived from a struct of 27 bytes in size */
-
- #endif
- typedef OpaquePtr AEArrayDataPointer; /* Substituted OpaquePtr for “AEArrayData*” */
-
- /*
- *************************************************************************
- These calls are used to set up and modify the coercion dispatch table.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
- #if !FOR_PTR_BASED_AE
- typedef OpaquePtr AECoerceDescProcPtr;
- typedef OpaquePtr AECoerceDescUPP;
- typedef OpaquePtr AECoercePtrProcPtr;
- typedef OpaquePtr AECoercePtrUPP;
- typedef UniversalProcPtr AECoercionHandlerUPP;
-
- #endif
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #if FOR_PTR_BASED_AE
- typedef OpaquePtr AECoercionProc;
- #endif
- #endif
- /*
- *************************************************************************
- The following calls provide for a coercion interface.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- /*
- *************************************************************************
- The following calls apply to any AEDesc. Every 'result' descriptor is
- created for you, so you will be responsible for memory management
- (including disposing) of the descriptors so created.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #if FOR_PTR_BASED_AE
- #endif
- #endif
- /*
- *************************************************************************
- The following calls apply to AEDescList. Since AEDescList is a subtype of
- AEDesc, the calls in the previous section can also be used for AEDescList.
- All list and array indices are 1-based. If the data was greater than
- maximumSize in the routines below, then actualSize will be greater than
- maximumSize, but only maximumSize bytes will actually be retrieved.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- /*
- *************************************************************************
- The following calls apply to AERecord. Since AERecord is a subtype of
- AEDescList, the calls in the previous sections can also be used for
- AERecord an AERecord can be created by using AECreateList with isRecord
- set to true.
- *************************************************************************
- */
- #if FOR_SYSTEM8_PREEMPTIVE
- #endif
- #if FOR_SYSTEM7_ONLY
- /*
- Note: The following #defines map “key” calls on AERecords into “param” calls on
- AppleEvents. Although no errors are currently returned if AERecords are
- passed to “param” calls and AppleEvents to “key” calls, the behavior of
- this type of API-mixing is not explicitly documented in Inside Macintosh.
- It just happens that the “key” calls have the same functionality as their
- “param” counterparts. Since none of the “key” calls are currently available
- in the PowerPC IntefaceLib, the #defines exploit the fact that “key” and
- “param” routines can be used interchangeably, and makes sure that every
- invokation of a “key” API becomes an invokation of a “param” API.
- */
- #endif
- /*
- *************************************************************************
- The following calls create and manipulate the AppleEvent data type.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #if FOR_PTR_BASED_AE
- #endif
- #endif
- /*
- *************************************************************************
- The following calls are used to pack and unpack parameters from records
- of type AppleEvent. Since AppleEvent is a subtype of AERecord, the calls
- in the previous sections can also be used for variables of type
- AppleEvent. The next six calls are in fact identical to the six calls
- for AERecord.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- /*
- *************************************************************************
- The following calls also apply to type AppleEvent. Message attributes are
- far more restricted, and can only be accessed through the following 5
- calls. The various list and record routines cannot be used to access the
- attributes of an event.
- *************************************************************************
- */
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- #endif
- #if FOR_SYSTEM8_PREEMPTIVE
- #if FOR_PTR_BASED_AE
- /*
- *************************************************************************
- These calls are used to convert AEDescs into a "flattened", canonical
- form and back again.
- *************************************************************************
- */
- /*
- *************************************************************************
- The following calls apply to AEStreams. Once a AEStream has been
- fully written, it may be converted to an AEDesc, AEDescList or AERecord
- to be used by the various other routines listed above.
- *************************************************************************
- */
- typedef OpaquePtr AEStream;
-
- /*
- *************************************************************************
- The following calls apply to AESubDescs. AESubDescs provide an efficient
- way to traverse recursive AERecords and AEDescLists.
- *************************************************************************
- */
- typedef SOMLargeStruct OpaqueAESubDesc; /* Derived from a struct of 32 bytes in size */
-
- typedef OpaqueAESubDesc AESubDesc;
-
- #endif
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __AEDATAMODEL_IDL__ */
-
-